home *** CD-ROM | disk | FTP | other *** search
- {
- -> I don't have an answer to your question, but would you happen to know
- -> how to return a user's full name (as stored in syscon)? Thanks.
-
- I assume you already have the user's login name. Here is a procedure
- that will get a user's full name. If you are going to do a lot of
- Netware programming I suggest you get "Programmers Guide to Netware" by
- Charles Rose. ISBN # 0-07-607029-8. It documents all of the Netware
- functions and also talks about IPX/SPX programming.
- }
-
- Uses
- Dos;
-
- Var
- Regs : Registers;
-
- Function Full_Name(User_Name : String) : String;
- Type
- RequestBuffer = Record
- RequestBufferLength : Word;
- Code : Byte;
- ObjectType : Word;
- ObjectNameLength : Byte;
- ObjectName : Array[1..48] of char;
- SegmentNumber : Byte;
- PropertyNameLength : Byte;
- PropertyName : Array[1..15] of char;
- end;
-
- ReplyBuffer = Record
- ReplyBufferLength : Word;
- PropertyValue : Array[1..128] of char;
- MoreSegments : Byte;
- PropertyFlags : Byte;
- end;
-
- Var
- Request : RequestBuffer;
- Reply : ReplyBuffer;
- PropertyName : String[15];
- Counter : Byte;
- Temp : String[128];
-
- begin
- PropertyName := 'IDENTIFICATION';
- Request.RequestBufferLength := SizeOf(Request) - 2;
- Request.Code := $3D;
- Request.SegmentNumber := 1;
- Request.ObjectType := $0100;
- Request.ObjectNameLength := SizeOf(Request.ObjectName);
- FillChar(Request.ObjectName, SizeOf(Request.ObjectName), #0);
-
- For Counter := 1 to length(User_Name) do
- Request.ObjectName[Counter] := User_Name[Counter];
-
- Request.PropertyNameLength := SizeOf(Request.PropertyName);
- FillChar(Request.PropertyName, SizeOf(Request.PropertyName), #0);
-
- For Counter := 1 to Length(PropertyName) do
- Request.PropertyName[Counter] := PropertyName[Counter];
-
- Regs.AH := $E3;
- Regs.DS := Seg(Request);
- Regs.SI := Ofs(Request);
-
- Reply.ReplyBufferLength := SizeOf(Reply) - 2;
- Regs.ES := Seg(Reply);
- Regs.DI := Ofs(Reply);
-
- MSDos(Regs);
-
- Temp := '';
- Counter := 1;
- While (Reply.PropertyValue[Counter] <> #0) do
- begin
- Temp := Temp + Reply.PropertyValue[Counter];
- inc(Counter);
- end;
- Full_Name := Temp;
- end;
-
- begin
- Writeln(Full_Name('SOKALSKY'));
- end.